<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- .wrap>button{新增}+ul.list>li*6{$$} -->
    <div class="wrap">
        <button class="btn">新增</button>
        <button class="btn">新增</button>
        <ul class="list">
            <li>01</li>
            <li>02</li>
            <li class="mid">03</li>
            <li>04</li>
            <li>05</li>
            <li>06</li>
        </ul>
    </div>
</body>
<script>
    var btn1 = document.getElementsByClassName("btn")[0];
    var btn2 = document.getElementsByClassName("btn")[1];
    var list = document.getElementsByClassName("list")[0];
    var mid = document.getElementsByClassName("mid")[0];

    // document.createElement(tagName)  传入一个标签名,创建对应类型的元素 (在没有放到页面之前 都是存储在内存当中 => 放到页面中才会显示)

    // 如何将新增的节点放到页面中
    // 放到父元素 => 父元素统筹    append追加   prepend预追加

    // parent.appendChild(newNode)   向匹配的元素中  追加 一个节点(新的/页面中已存在的)

    // parent.append(newNode|string)    向匹配的元素中  追加 一个节点(新的/页面中已存在的)或字符串 (放在父元素所有内容的最后面)
    // parent.prepend(newNode|string)   向匹配的元素中  预追加 一个节点(新的/页面中已存在的)或字符串  (放在父元素所有内容的最前面)


    // 放在某个元素的前面    => 父元素统筹 
    // parent.insertBefore(newNode,oldNode)   喜新厌旧 => 将一个节点(新的/页面中已存在的)  插入到另一个节点(新的/页面中已存在的)的 前面

    // 点击按钮  新增li放到 .list中
    btn1.onclick = function () {
        // 新增li
        var li = document.createElement("li");
        console.log(li);

        li.innerText = "我是新增的li";  //新增内容
        li.setAttribute("class", "newLi"); // 绑定属性
        li.style.backgroundColor = randColor(); //修改样式
        li.onclick = function () {
            console.log("我是新增的li");
        }
        // 放到.list中

        list.appendChild(li);

        // list.append(li);
        // list.append("hello");

        // list.prepend(li);


        // list.append(list.firstElementChild);
    }

    // 点击按钮  新增li放到 mid的前面
    btn2.onclick = function () {
        var li = document.createElement("li");
        console.log(li);

        li.innerText = "我是新增的li";  //新增内容
        li.setAttribute("class", "newLi"); // 绑定属性
        li.style.backgroundColor = randColor(); //修改样式
        li.onclick = function () {
            console.log("我是新增的li"); 
        }
        //mid的前面

        list.insertBefore(li, mid);// 放在03之前
        list.insertBefore(li, mid.nextElementSibling);// 放在03之后
    }


    // 颜色表示方式
    // 1. 颜色单词  red green blue
    // 2. 16进制   #ffffff   16(0 1 2 3 4 5 6 7 8 9 a b c d e f)
    // 3. ragb     rgba(255,255,255,1);
    function randColor() {
        var str = "0123456789abcdef";
        var colorStr = "#"
        for (var i = 0; i < 6; i++) {
            // var index = Math.round(Math.random() * (str.length - 1));
            var index = Math.floor(Math.random() * str.length);
            var char = str.charAt(index);
            colorStr += char;
        }
        return colorStr;
    }







</script>

</html>